<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>评论回车发布</title>
    <style>
      .wrapper {
        min-width: 400px;
        max-width: 800px;
        display: flex;
        justify-content: flex-end;
      }

      .avatar {
        width: 48px;
        height: 48px;
        border-radius: 50%;
        overflow: hidden;
        background: url(./images/avatar.jpg) no-repeat center / cover;
        margin-right: 20px;
      }

      .wrapper textarea {
        outline: none;
        border-color: transparent;
        resize: none;
        background: #f5f5f5;
        border-radius: 4px;
        flex: 1;
        padding: 10px;
        transition: all 0.5s;
        height: 30px;
      }

      .wrapper textarea:focus {
        border-color: #e4e4e4;
        background: #fff;
        height: 50px;
      }

      .wrapper button {
        background: #00aeec;
        color: #fff;
        border: none;
        border-radius: 4px;
        margin-left: 10px;
        width: 70px;
        cursor: pointer;
      }

      .wrapper .total {
        margin-right: 80px;
        color: #999;
        margin-top: 5px;
        opacity: 0;
        transition: all 0.5s;
      }

      .list {
        min-width: 400px;
        max-width: 800px;
        display: flex;
      }

      .list .item {
        width: 100%;
        display: flex;
      }

      .list .item .info {
        flex: 1;
        border-bottom: 1px dashed #e4e4e4;
        padding-bottom: 10px;
      }

      .list .item p {
        margin: 0;
      }

      .list .item .name {
        color: #fb7299;
        font-size: 14px;
        font-weight: bold;
      }

      .list .item .text {
        color: #333;
        padding: 10px 0;
      }

      .list .item .time {
        color: #999;
        font-size: 12px;
      }
    </style>
  </head>

  <body>
    <div class="wrapper">
      <i class="avatar"></i>
      <textarea
        id="tx"
        placeholder="发一条友善的评论"
        rows="2"
        maxlength="200"
      ></textarea>
      <button>发布</button>
    </div>
    <div class="wrapper">
      <span class="total">0/200字</span>
    </div>
    <div class="list">
      <div class="item" style="display: none">
        <i class="avatar"></i>
        <div class="info">
          <p class="name">清风徐来</p>
          <p class="text">
            大家都辛苦啦，感谢各位大大的努力，能圆满完成真是太好了[笑哭][支持]
          </p>
          <p class="time">2022-10-10 20:29:21</p>
        </div>
      </div>
    </div>

    <script>
      // 1.获取元素
      // 获取文本域
      const tx = document.querySelector("#tx");
      // 获取total
      const total = document.querySelector(".total");
      // 获取item
      const item = document.querySelector(".item");
      // 获取text
      const text = document.querySelector(".text");

      // 2.文本域获得焦点 让total显示
      tx.addEventListener("focus", function () {
        total.style.opacity = 1;
      });

      // 3.文本域失去焦点 让total隐藏
      tx.addEventListener("blur", function () {
        total.style.opacity = 0;
      });

      // 4.检测用户输入的字符数
      tx.addEventListener("input", function () {
        // tx.value.length 是获取文本框中输入的字符数
        total.innerHTML = `${tx.value.length}/200字`;
      });
      // 按下回车发布评论
      tx.addEventListener("keyup", function (e) {
        // 按下回车键触发
        if (e.key === "Enter") {
          // 如果tx的内容不为空
          if (tx.value.trim() !== "") {
            // 将item的display设置为block
            item.style.display = "block";
            // 将text的内容设置为tx的内容
            text.innerHTML = tx.value;
          }

          // 将tx的内容设置为空
          tx.value = "";
        }
      });
    </script>
  </body>
</html>
